const getList = (req, res, next) => {
  // 参数验证
  let { current, pagesize, search, qualityType, sortType, sortMethod } = req.query

  current === undefined && (req.query.current = current = 1)
  pagesize === undefined && (req.query.pagesize = pagesize = 12)
  search === undefined && (req.query.search = '')
  qualityType === undefined && (req.query.qualityType = qualityType = 10)
  sortType === undefined && (req.query.sortType = sortType = 'id')
  sortMethod === undefined && (req.query.sortMethod = sortMethod = 'ASC')

  // 验证 current
  if (!/^\d*$/.test(current)) return next({
    message: 'current 内容不对哦 (#^.^#), 需要的是一个数字, 但是你给的并不是',
    code: 5,
    tips: `你传递给后端的 current 内容是 : '${ current }'`
  })

  // 验证 pagesize
  if (!/^\d*$/.test(pagesize)) return next({
    message: 'pagesize 内容不对哦 (#^.^#), 需要的是一个数字, 但是你给的并不是',
    code: 5,
    tips: `你传递给后端的 pagesize 内容是 : '${ pagesize }'`
  })

  // 验证 qualityType
  if (!/^([5-9]|10)$/.test(qualityType)) return next({
    message: `qualityType内容不对哦 (#^.^#), 需要的是 7 到 9.9之间的数字, 表示 7成新 到 几乎全新, 但是你给的并不是`,
    code: 5,
    tips: `你传递给后端的 qualityType 内容是 : '${ qualityType }'`
  })

  // 验证 sortType
  if (!/^(id|price|quality)$/i.test(sortType)) return next({
    message: `sortType 内容不对哦 (#^.^#), 需要的是 'id' 或者 'qualityType' 或者 'price', 但是你给的并不是`,
    code: 5,
    tips: `你传递给后端的 sortType 内容是 : '${ sortType }'`
  })

  // 验证 sortMethod
  if (!/^(asc|desc)$/i.test(sortMethod)) return next({
    message: `sortMethod 内容不对哦 (#^.^#), 需要的是 'ASC' 或者 'DESC', 但是你给的并不是`,
    code: 5,
    tips: `你传递给后端的 sortMethod 内容是 : '${ sortMethod }'`
  })

  req.query.qualityType += '0%'

  next()
}

const getGoodsById = (req, res, next) => {
  const goodsId= req.query.goodsId || req.params.goodsId

  if (goodsId === undefined) return next({
    message: '你想查询某一个商品的详细信息, 需要传递该商品的 id 给我哦 ^_^ ',
    code: 5,
    tips: `你传递给后端的 goodsId内容是 : 'undefined'`
  })

  if (!/^\d+$/.test(goodsId)) return next({
    message: 'id 内容不对哦 (#^.^#), 需要的是一个数字, 但是你给的并不是',
    code: 5,
    tips: `你传递给后端的 goodsId 内容是 : '${goodsId }'`
  })

  req.query.goodsId = goodsId - 0

  next()
}
const info = (req, res, next) => {
  const goods_id = req.query.goodsId || req.params.goodsId
  if (!goods_id) return next({
    message: '获取商品详细信息, 需要你给我一个商品 id, 但是你并没有给我哦 ^_^ ',
    code: 5
  })

  if (!/^\d+$/.test(goods_id)) return next({
    message: 'goods_id 内容不对哦 (#^.^#), 需要的是一个数字, 但是你给的并不是',
    code: 5,
    tips: `你传递给后端的 goods_id 内容是 : '${ goods_id }'`
  })

  next()
}


module.exports = {
  getList,
  getGoodsById,
  info
}
